package com.dragon.modules.yuegou.model.points;

import com.dragon.modules.yuegou.entity.points.ApplyEntity;
import com.dragon.modules.yuegou.enums.points.ApplyStatus;
import com.dragon.modules.yuegou.enums.points.ApplyType;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 积分兑换申请模型类
 * 
 * @author pbuilder generated
 * @date 2019-04-02 17:40:47
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class Apply extends ApplyEntity {

	@ApiModelProperty("停车券")
	private String title;

	@ApiModelProperty("当天类似小票")
	private List<String> likeTicket;// 当天类似小票

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public List<String> getLikeTicket() {
		return likeTicket;
	}

	public void setLikeTicket(List<String> likeTicket) {
		this.likeTicket = likeTicket;
	}

	/**
	 * 构造一个空积分兑换申请模型对象
	 */
	public Apply() {
		super();
	}

	/**
	 * 依据实体对象的信息构造一个积分兑换申请模型对象
	 * 
	 * @param entity
	 *            实体对象
	 */
	public Apply(ApplyEntity entity) {
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个积分兑换申请模型对象
	 * 
	 * @param other
	 *            其它对象
	 */
	public Apply(Apply other) {
		super(other);
	}

	@Override
	public String getId() {
		return id;
	}

	/**
	 * 设置
	 * 
	 * @param id
	 * @return 当前对象
	 */
	public Apply id(String id) {
		this.id = id;
		return this;
	}

	@Override
	public String getBusdId() {
		return busdId;
	}

	/**
	 * 设置商圈ID
	 * 
	 * @param busdId
	 *            商圈ID
	 * @return 当前对象
	 */
	public Apply busdId(String busdId) {
		this.busdId = busdId;
		return this;
	}

	@Override
	public String getMemberId() {
		return memberId;
	}

	/**
	 * 设置会员ID
	 * 
	 * @param memberId
	 *            会员ID
	 * @return 当前对象
	 */
	public Apply memberId(String memberId) {
		this.memberId = memberId;
		return this;
	}

	@Override
	public String getMobile() {
		return mobile;
	}

	/**
	 * 设置手机号
	 * 
	 * @param mobile
	 *            手机号
	 * @return 当前对象
	 */
	public Apply mobile(String mobile) {
		this.mobile = mobile;
		return this;
	}

	@Override
	public String getMerchantId() {
		return merchantId;
	}

	/**
	 * 设置商户ID
	 * 
	 * @param merchantId
	 *            商户ID
	 * @return 当前对象
	 */
	public Apply merchantId(String merchantId) {
		this.merchantId = merchantId;
		return this;
	}

	@Override
	public String getMerchantName() {
		return merchantName;
	}

	/**
	 * 设置商户名称
	 * 
	 * @param merchantName
	 *            商户名称
	 * @return 当前对象
	 */
	public Apply merchantName(String merchantName) {
		this.merchantName = merchantName;
		return this;
	}

	@Override
	public String getTicketPic() {
		return ticketPic;
	}

	/**
	 * 设置小票照片
	 * 
	 * @param ticketPic
	 *            小票照片
	 * @return 当前对象
	 */
	public Apply ticketPic(String ticketPic) {
		this.ticketPic = ticketPic;
		return this;
	}

	@Override
	public String getTicketNum() {
		return ticketNum;
	}

	/**
	 * 设置票号
	 * 
	 * @param ticketNum
	 *            票号
	 * @return 当前对象
	 */
	public Apply ticketNum(String ticketNum) {
		this.ticketNum = ticketNum;
		return this;
	}

	@Override
	public BigDecimal getCost() {
		return cost;
	}

	/**
	 * 设置消费金额
	 * 
	 * @param cost
	 *            消费金额
	 * @return 当前对象
	 */
	public Apply cost(BigDecimal cost) {
		this.cost = cost;
		return this;
	}

	@Override
	public LocalDateTime getCostTime() {
		return costTime;
	}

	/**
	 * 设置消费时间
	 * 
	 * @param costTime
	 *            消费时间
	 * @return 当前对象
	 */
	public Apply costTime(LocalDateTime costTime) {
		this.costTime = costTime;
		return this;
	}

	@Override
	public Integer getPoints() {
		return points;
	}

	/**
	 * 设置兑换积分
	 * 
	 * @param points
	 *            兑换积分
	 * @return 当前对象
	 */
	public Apply points(Integer points) {
		this.points = points;
		return this;
	}

	@Override
	public ApplyStatus getStatus() {
		return status;
	}

	/**
	 * 设置[枚举]状态：0-申请中-APPLYFOR、1-申请通过-APPLYPASS、2-驳回-REJECTED
	 * 
	 * @param status
	 *            [枚举]状态：0-申请中-APPLYFOR、1-申请通过-APPLYPASS、2-驳回-REJECTED
	 * @return 当前对象
	 */
	public Apply status(ApplyStatus status) {
		this.status = status;
		return this;
	}

	@Override
	public String getReason() {
		return reason;
	}

	/**
	 * 设置驳回原因
	 * 
	 * @param reason
	 *            驳回原因
	 * @return 当前对象
	 */
	public Apply reason(String reason) {
		this.reason = reason;
		return this;
	}

	@Override
	public ApplyType getType() {
		return type;
	}

	/**
	 * 设置[枚举]类型：0-机打-MACHINE_PRINT、1-非机打-WRITE
	 * 
	 * @param type
	 *            [枚举]类型：0-机打-MACHINE_PRINT、1-非机打-WRITE
	 * @return 当前对象
	 */
	public Apply type(ApplyType type) {
		this.type = type;
		return this;
	}

	@Override
	public String getMemberLevelId() {
		return memberLevelId;
	}

	/**
	 * 设置会员等级id
	 * 
	 * @param memberLevelId
	 *            会员等级id
	 * @return 当前对象
	 */
	public Apply memberLevelId(String memberLevelId) {
		this.memberLevelId = memberLevelId;
		return this;
	}

	@Override
	public String getMemberLevelName() {
		return memberLevelName;
	}

	/**
	 * 设置会员等级名称
	 * 
	 * @param memberLevelName
	 *            会员等级名称
	 * @return 当前对象
	 */
	public Apply memberLevelName(String memberLevelName) {
		this.memberLevelName = memberLevelName;
		return this;
	}

	@Override
	public String getLevelProportion() {
		return levelProportion;
	}

	/**
	 * 设置等级比例 如1:1 这里只是记录
	 * 
	 * @param levelProportion
	 *            等级比例 如1:1 这里只是记录
	 * @return 当前对象
	 */
	public Apply levelProportion(String levelProportion) {
		this.levelProportion = levelProportion;
		return this;
	}

	@Override
	public String getPointProportion() {
		return pointProportion;
	}

	/**
	 * 设置积分配比 如30:1 这里只是记录
	 * 
	 * @param pointProportion
	 *            积分配比 如30:1 这里只是记录
	 * @return 当前对象
	 */
	public Apply pointProportion(String pointProportion) {
		this.pointProportion = pointProportion;
		return this;
	}

	@Override
	public String getRemark() {
		return remark;
	}

	/**
	 * 设置备注说明
	 * 
	 * @param remark
	 *            备注说明
	 * @return 当前对象
	 */
	public Apply remark(String remark) {
		this.remark = remark;
		return this;
	}

	@Override
	public Boolean getIsApplyConpon() {
		return isApplyConpon;
	}

	/**
	 * 设置是否兑换停车券
	 * 
	 * @param isApplyConpon
	 *            是否兑换停车券
	 * @return 当前对象
	 */
	public Apply isApplyConpon(Boolean isApplyConpon) {
		this.isApplyConpon = isApplyConpon;
		return this;
	}

	@Override
	public String getConponId() {
		return conponId;
	}

	/**
	 * 设置
	 * 
	 * @param conponId
	 * @return 当前对象
	 */
	public Apply conponId(String conponId) {
		this.conponId = conponId;
		return this;
	}

	@Override
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}

	/**
	 * 设置
	 * 
	 * @param createdTime
	 * @return 当前对象
	 */
	public Apply createdTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
		return this;
	}

	@Override
	public String getCreatedBy() {
		return createdBy;
	}

	/**
	 * 设置
	 * 
	 * @param createdBy
	 * @return 当前对象
	 */
	public Apply createdBy(String createdBy) {
		this.createdBy = createdBy;
		return this;
	}

	@Override
	public LocalDateTime getModifiedTime() {
		return modifiedTime;
	}

	/**
	 * 设置
	 * 
	 * @param modifiedTime
	 * @return 当前对象
	 */
	public Apply modifiedTime(LocalDateTime modifiedTime) {
		this.modifiedTime = modifiedTime;
		return this;
	}

	@Override
	public String getModifiedBy() {
		return modifiedBy;
	}

	/**
	 * 设置
	 * 
	 * @param modifiedBy
	 * @return 当前对象
	 */
	public Apply modifiedBy(String modifiedBy) {
		this.modifiedBy = modifiedBy;
		return this;
	}

	@Override
	public Boolean getDel() {
		return del;
	}

	/**
	 * 设置逻辑删除，1表示已删除,0表示未删除
	 * 
	 * @param del
	 *            逻辑删除，1表示已删除,0表示未删除
	 * @return 当前对象
	 */
	public Apply del(Boolean del) {
		this.del = del;
		return this;
	}

	@Override
	public String getDelBy() {
		return delBy;
	}

	/**
	 * 设置
	 * 
	 * @param delBy
	 * @return 当前对象
	 */
	public Apply delBy(String delBy) {
		this.delBy = delBy;
		return this;
	}

	@Override
	public LocalDateTime getDelTime() {
		return delTime;
	}

	/**
	 * 设置
	 * 
	 * @param delTime
	 * @return 当前对象
	 */
	public Apply delTime(LocalDateTime delTime) {
		this.delTime = delTime;
		return this;
	}

	@ApiModelProperty("申请会员手机号")
	private String memberMobile;
	
	@ApiModelProperty("申请会员昵称")
	private String memberNickName;
	
	@ApiModelProperty("申请会员头像")
	private String memberHeadImg;
	
	@ApiModelProperty("审核人名称")
	private String userName;
	
	@ApiModelProperty("审核人手机")
	private String userMobile;
	
	@ApiModelProperty("审核人ID")
	private String userId;

	private String maskNickName;

	public void setMemberMobile(String memberMobile) {
		this.memberMobile = memberMobile;
	}

	public String getMemberMobile() {
		return memberMobile;
	}

	public void setMemberNickName(String memberNickName) {
		this.memberNickName = memberNickName;
	}

	public String getMemberNickName() {
		return memberNickName;
	}

	public void setMemberHeadImg(String memberHeadImg) {
		this.memberHeadImg = memberHeadImg;
	}

	public String getMemberHeadImg() {
		return memberHeadImg;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}

	public String getUserId() {
		return userId;
	}

	public void setUserMobile(String userMobile) {
		this.userMobile = userMobile;
	}

	public String getUserMobile() {
		return userMobile;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getUserName() {
		return userName;
	}
	
	public String getMaskNickName() {
		return maskNickName;
	}

	public void setMaskNickName(String maskNickName) {
		this.maskNickName = maskNickName;
	}

}
